<?php
require_once '../ORM/ORMTransac.php';
require_once '../ORM/ORMMoneda.php';
require_once 'alertaControlador.php';
require_once '../beans/moneda.php';

if(!empty($_POST)) {
    switch($_POST['accion']) {
        case 'agregarMoneda':
            $moneda = filter_input(INPUT_POST, 'moneda', FILTER_SANITIZE_STRING);
            $simbolo = filter_input(INPUT_POST, 'simbolo', FILTER_SANITIZE_STRING);
            agregarMoneda($moneda, $simbolo);
            break;
        case 'getMonedasDeshabilitadas':
            getMonedasDeshabilitadas();
            break;
        case 'getMonedas':
            getMonedas();
            break;
        case 'getMonedasCombo':
            getMonedasCombo();
            break;
        case 'deshabilitarMoneda':
            $idMoneda = filter_input(INPUT_POST, 'idMoneda', FILTER_SANITIZE_NUMBER_INT);
            deshabilitarMoneda($idMoneda);
            break;
        case 'habilitarMoneda':
            $idMoneda = filter_input(INPUT_POST, 'idMoneda', FILTER_SANITIZE_NUMBER_INT);
            habilitarMoneda($idMoneda);
            break;
    }
}

function agregarMoneda($moneda, $simbolo) {
    $error = 0;
    if(strlen($moneda) == 0) {
        alerta("#resultadoMoneda", 'Debe agregar una descripción para la moneda.');
        $error = 1;
    }
    
    if(strlen($simbolo) == 0) {
        alerta("#resultadoSimbolo", 'Debe agregar un símbolo.');
        $error = 1;
    }
    
    if($error == 0) {
        if(ORMExisteMoneda($moneda)) {
            alerta("#resultadoMoneda", "Ya existe la moneda");
            alerta("#resultadoSimbolo", "Ya existe la moneda");
        } else {
            if(ORMAgregarMoneda($moneda, $simbolo)) {
                ok("#resultadoMoneda", "Moneda agregada exitosamente.");
                ok("#resultadoSimbolo", "Moneda agregada exitosamente");
                ?>
<script type="text/javascript">
    $(document).ready(function() {
        getMonedas();
    });
</script>
                <?php
            } else {
                error("#resultadoMoneda", "No se pudo registrar la moneda.");
                error("#resultadoSimbolo", "No se pudo registrar la moneda.");
            }
        }
    }
}

function getMonedas() {
    $monedas = ORMgetMonedasHabilitadas();
    
    if(count($monedas) == 0) {
        echo "<div class='alert alert-error'><b>Alerta !</b><br />No hay monedas.</div>";
    } else {
        echo "<table class='table table-striped table-bordered'>\n";
        foreach ($monedas as $key => $value) {
            echo "<tr class=\"alternate-row\">\n";
            echo "<td width=\"90%\"><div id=\"".$key."\"><label>".$value."</label></div></td>\n";
            echo "<td width=\"10%\"><a href=\"#\" id=\"".$key."\" onclick=\"deshabilitarMoneda(".$key.");\"> <i title=\"Deshabilitar\" class=\"icon-remove\"></i></a></td>\n";
            echo "</tr>";
        }
        echo "</table>\n";
    }
}

function getMonedasDeshabilitadas() {
    $monedas = ORMgetMonedasDeshabilitadas();
    
    echo "<h4>Monedas Deshabilitadas</h4>";
    if(count($monedas) == 0) {
        echo "<div class='alert alert-error'><b>Alerta !</b><br />No hay monedas deshabilitadas.</div>";
    } else {
        echo "<table class='table table-striped table-bordered'>\n";
        foreach ($monedas as $key => $value) {
            echo "<tr class=\"alternate-row\">\n";
            echo "<td width=\"90%\"><div id=\"".$key."\"><label>".$value."</label></div></td>\n";
            echo "<td width=\"10%\"><a href=\"#\" id=\"".$key."\" onclick=\"habilitarMoneda(".$key.");\"> <i title=\"Habilitar\" class=\"icon-share-alt\"></i></a></td>\n";
            echo "</tr>";
        }
        echo "</table>\n";
    }
}

function getNombreMoneda($idMoneda) {
    return ORMGetNombreMoneda($idMoneda);
}

function getMonedasCombo() {
    $monedas = ORMgetMonedasHabilitadas();
    
    echo "<select id=\"monedasCombo\">\n";
    foreach ($monedas as $key => $value) {
        echo "<option value=\"".$key."\">".$value."</option>\n";
    }
    echo "</select>\n";
}

function getMoneda($idMoneda) {
    $moneda = new moneda();
    $moneda->setIdMoneda($idMoneda);
    $moneda->setMoneda(ORMGetCampoMonedaPorId($idMoneda, 'moneda'));
    $moneda->setSimbolo(ORMGetCampoMonedaPorId($idMoneda, 'simbolo'));
    $moneda->setHabilitado(ORMGetCampoMonedaPorId($idMoneda, 'habilitado'));
    
    return $moneda;
}

function deshabilitarMoneda($idMoneda) {
    ORMBeginTransac();
    if(ORMDeshabilitarMoneda($idMoneda)) {
        ORMCommit();
    } else {
        ORMRollback();
    }
    
}

function habilitarMoneda($idMoneda) {
    ORMBeginTransac();
    if(ORMhabilitarMoneda($idMoneda)) {
        ORMCommit();
    } else {
        ORMRollback();
    }
    
}
?>